Skip to content

Document the definitions.json file format#2499

Open
lacatoire wants to merge 4 commits intorabbitmq:mainfrom
lacatoire:definitions-json-spec
Open

Document the definitions.json file format#2499
lacatoire wants to merge 4 commits intorabbitmq:mainfrom
lacatoire:definitions-json-spec

Conversation

@lacatoire
Copy link
Copy Markdown
Contributor

Fixes #1953

Adds a "Definitions File Format" section documenting the JSON structure used by definition export/import, with property tables and examples for all object types.

Applied to all editions (docs, 4.2, 4.1, 4.0, 3.13).

Add a comprehensive "Definitions File Format" section to the definitions
guide covering all top-level keys with property tables and examples:
users, vhosts, permissions, topic_permissions, parameters,
global_parameters, policies, queues, exchanges and bindings.

Applied to all editions (docs, 4.2, 4.1, 4.0, 3.13).
- Add product_name, product_version to top-level keys table
- Clarify version fields are informational and ignored at import
- Fix users: link to Computing Password Hashes section, detail limits format
- Fix vhosts: add tracing field, move description/tags/default_queue_type
  inside metadata, document backward-compatible direct properties
- Fix queues: add exclusive field, document that type is export-only and
  x-queue-type argument must be used at import time (admonition added)
- Clarify "at import time" for all boolean defaults
- Add properties_key to bindings
- Update minimal example to use x-queue-type argument
- Users: add plaintext password field as alternative to password_hash,
  mark both as optional (either one should be provided)
- Bindings: routing_key is optional (defaults to empty string),
  common for fanout and headers exchange bindings
- Queues: remove exclusive field (no practical use in definitions),
  fix contradiction in admonition (remove type from fallback sentence)
- Vhosts: use neutral example without default_queue_type on /
- Note that product_name/product_version are only in management plugin
  exports, not in rabbitmqctl output
- Document the fixed import order (users, vhosts, permissions, exchanges,
  topic permissions, global parameters, policies, parameters, queues,
  bindings) so users know ordering in the JSON file does not matter
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RabbitMQ definitions.json specification

1 participant